﻿using System;
using System.Collections.Generic;
using System.Linq.Expressions;

namespace Loki.Engine
{
    public class LinkContainerConfiguration<TLinkKey>
    {
        public string LoadingErrorCode
        {
            get;
            set;
        }

        public Expression<Func<TLinkKey, IEnumerable<IEntityLink<TLinkKey>>>> LeftLoader
        {
            get;
            set;
        }

        public Expression<Func<TLinkKey, IEnumerable<IEntityLink<TLinkKey>>>> RightLoader
        {
            get;
            set;
        }

        public Expression<Func<IEnumerable<IEntityLink<TLinkKey>>>> FullLoader
        {
            get;
            set;
        }

        public Action<IEntityLink<TLinkKey>> PostUpdate
        {
            get;
            set;
        }

        public Action<IEntityLink<TLinkKey>> PreUpdate
        {
            get;
            set;
        }
    }
}
